Texture mapping is a method for adding detail, surface texture, or color to a computer-generated graphic or 3D model. Texture mapping enhances the visual complexity of the 3D objects with a relatively small increase in computational costs. However, the raw textures used in texture mapping consume large amounts of memory and storage space. As such, compressed, i.e., coded, textures are typically used in graphics applications, specifically real-time rendering. Real-time rendering applications can compose images from compressed textures.
For example, DirectX Texture Compression, which may also be known as DXTn, DXTC, and S3TC, is an index-based format that has become the dominant texture compression format in the industry. Indexed-based formats may organize textures into blocks of data, and use commonalities of those blocks to efficiently compress texture data. DXTn typically provides a compression ratio of 8:1 or 4:1 for 32 bits per pixel (bpp) Alpha/Red/Green/Blue (ARGB) textures with little loss in visual quality. Other texture compression formats may employ similar index-based compression technologies.
Generally, texture compression technologies support random addressing. Further, there is generally a trade-off between random addressing and compression ratios. In particular, the compression ratio may depend on the block size used in compression, and the block size may have impacts on the random addressing capability.
It is desirable to achieve ever higher rates of compression, especially for storage devices because the low bandwidth resources typical of storage devices can impede the high performance requirements of graphics processing. However, textures stored with higher rates of compression typically cannot be directly rendered due to limitations in random addressing introduced by the large block sizes of high-compression formats.